Python 編
導入(基本編)
Pythonで作成したプログラムの実行
(1) ソースファイルを作成
メモ帳などテキスト入力エディタを使って,プログラム(ソースコード)を記入する。
VSCode(Visual Studio Code)などを利用すると便利。
ソースファイルは,「~.py」のように,拡張子 py で名前を付けるのが一般的。
(2) プログラムの実行
◇ プログラムを実行するための環境を整える。
◇ プログラムを実行する。
・ターミナル(コマンドプロンプト)を開き,
実行したいプログラムファイルを,
「>python (ファイル名)」と入力して Enter を押すと実行できる。
例
「print("プログラムの実行")」と記述したファイルを,sample.py と名前を付けて保存する。
ターミナルを開いて,「>」の後に,「>python sample.py」と入力して,「Enter」キーを押す。
すると,画面に「プログラムの実行」と表示される。
(3) コメントアウト
◇ 一行
#(シャープ)を使って記述
「#」以降に書く文章は,行の終わりまで無視される。
例
# これはコメントです
print(2+5) # 2+5 の計算結果を表示する
――― 実行結果 ―――
7
◇ 複数行
'''(シングルクォーテーション3つ)あるいは """(ダブルクォーテーション3つ)で囲まれた部分がコメントアウト
例
'''
この行はコメントです
この行はコメントです
'''
算術演算子
演算子 | 説明 | 例 | 表示結果 |
+ | たし算(加算) | print(7+4) | 11 |
- | 引き算(減算) | print(8-6) | 2 |
* | かけ算(乗算) | print(6*5) | 30 |
/ | 割り算(除算) | print(9/4) | 2.25 |
// | 割り算の商 | print(10//3) | 3 |
% | 割り算の余り | print(14%5) | 4 |
** | べき乗(累乗) | print(4**3) | 64 |
データ
(1) 変数
・文字列と数値
数値は,そのまま記述
文字列は,'(シングルクォーテーション)や "(ダブルクォーテーション)で囲んで記述
・変数の代入
(変数名)= 値
・変数名の付け方
使用できる文字は「半角英数字」と「_(アンダーバー)」のみ。
最初1文字目に「数字」は利用できない。
英字の大文字,小文字は区別される。
予約語(if や for,import など)は使えない。
例
age = 18
user_name = '山田'
・複合代入演算子
演算子 | 説明 | 例 | 一般的表現 |
+= | 加算代入 | a += b | a = a+b |
-= | 減算代入 | a -= b | a = a-b |
*= | 乗算代入 | a *= b | a = a*b |
/= | 除算代入 | a /= b | a = a/b |
//= | 整数除算代入 | a //= b | a = a//b |
%= | 剰余代入 | a %= b | a = a%b |
**= | べき乗代入 | a **= b | a = a**b |
(2) データ型とその変換
・データ型
データ型 | 説明 | 記述例 |
int | 整数 | num = 6 |
str | 文字列 | sting = '文字列' |
fioat | 浮動小数点 | pi = 3.14 |
bool | ブール | bool_check = true |
list | リスト | question = ['名前', '趣味', '好きな色'] matrix = [[1,2,3],[4,5,6,],[7,8,9]] |
・データ型の変換方法(文字列 ←→ 数値)
変換 | 関数 | 記述例 | 表示結果 |
文字列 → 整数 | int | s='21' n=int(s) | print(n) # 21 |
文字列 → 浮動小数点 | float | p='3.14' a=float(p) | print(a) # 3.14 |
数値 → 文字列 | str | s=str(15) t=str(2.718) | print(s,t) # 15 2.718 |
比較演算子
演算子 | 条件 | 使用例 | 説明 |
== | 等しい | a == b | a と b は等しい |
!= | 等しくない | a != b | a と b は等しくない |
> | 大なり | a > b | a は b より大きい |
< | 小なり | a < b | a は b より小さい |
>= | 大なりイコール | a >= b | a は b 以上 |
<= | 小なりイコール | a <= b | a は b 以下 |
in | 含まれる | a in b | 変数 a は リスト b に含まれる |
not in | 含まれない | a not in b | 変数 a は リスト b に含まれない |
条件分岐と繰り返し
(1) if 文
・ if (条件式):
(条件式が真のときに実行する命令)
・ if (条件式):
(条件式が真のときに実行する命令)
else
(条件式が偽のときに実行する命令)
・ if (条件式1):
(条件式1が真のときに実行する命令)
elif (条件式2):
(条件式2が真のときに実行する命令)
else
(すべての条件式が偽のときに実行する命令)
例
/* -------------------------- */
(2) for文
・ for 変数 in リスト:
繰り返し処理(for ブロック)
例
for j in [2,3,5,7]:
print(str(j)+'は素数')
――― 実行結果 ―――
2は素数
3は素数
5は素数
7は素数
for i in range(3):
print(str(i**2)+'は平方数')
――― 実行結果 ―――
0は平方数
1は平方数
4は平方数
◇ range 関数
range(n) ・・・ 0 以上 n 未満の整数列のリスト
range(m,n) ・・・ m 以上 n 未満の整数列のリスト
を表す。
◇ ブロック
ブロックの範囲は,インデント(字下げ)で指定
半角スペースの個数が揃っていないとエラーが発生
(3) while文
・ while 条件式:
条件を満たすときの処理(while ブロック)
※ 無限ループに注意
例
rem = 22
remains = [] # 余りのリスト
while rem > 0 :
remain = rem % 2 # 2で割った余り
remains.append(str(remain)) # 余りを追加
rem //= 2 # 2で割った商を再定義
remains.reverse() # 逆順に並べる
binary = "".join(remains) # リストの文字列を結合する
print(binary)
――― 実行結果 ―――
10110
関数
(1) 関数の定義
・ def 関数名():
処理
例
def hello():
print('こんにちは,石川です。')
・ def 関数名(引数):
処理
例
def user(name,age):
print(name + 'は' + age +'歳です。' )
(2) 関数の呼び出し
・ 関数名():
例
def hello():
print('こんにちは,石川です。')
hello()
――― 実行結果 ―――
こんにちは,石川です。
def user(name,age):
print(name + 'は' + age +'歳です。' )
user('石川太郎','18')
――― 実行結果 ―――
石川太郎は18歳です。
(3) 関数の戻り値
・ 関数名(引数1,引数2,...):
処理
return 戻り値
例
def multi(a,b):
ans = a * b
return ans
x = multi(3,5)
print(x)
――― 実行結果 ―――
15
(4) 組み込み関数
分類 | 関数名 | 説明 |
計算関連 | abs() | 引数(数値)の絶対値を返す |
len() | オブジェクトの長さまたは個数を返す |
max() | 引数の最大値を返す |
min() | 引数の最小値を返す |
round() | 引数を(指定の位で)四捨五入した値を返す |
sum() | 引数の合計を返す |
データ型関連 | bool() | 引数の真偽値(True または False)を返す |
float() | 引数の浮動小数点数を返す |
int() | 引数の整数を返す |
list() | 引数で生成するリストを返す |
range() | 引数で指定した範囲の整数を返す |
set() | 引数から集合を作成する |
str() | 引数の文字列を返す |
type() | 引数のデータ型を返す |
入出力関連 | input() | (引数を表示して)入力データ(文字列)を返す |
open() | 引数で指定したファイルを開く |
print() | 引数を出力(表示)する |
例
num = 24
answer = [] # 約数のリスト
for i in range(1, num+1):
if num % i ==0: # num を i で割った余りが 0 に等しいとき
answer.append(i) # 約数を追加
print(answer)
――― 実行結果 ―――
[1, 2, 3, 4, 6, 8, 12, 24]
n = input("約数を求める整数は? >> ") # 入力を求める
num=int(n)
with open("divisor.txt","a") as f: # ファイル divisor.txt を上書きモードで開く
for i in range(1, num+1):
if num % i ==0:
f.write(str(i)+"\n") # 文字 i と 改行コード を書き込む
――― 実行結果 ―――
約数を求める整数は? >> 18
――― 出力結果 ―――
1
2
3
6
9
18